From 981efc90b41d52f9785bbff66a94ec71a9174940 Mon Sep 17 00:00:00 2001 From: "C. Scott Ananian" Date: Fri, 11 Nov 2011 16:26:12 -0500 Subject: [PATCH] Fix uninitialized digest_len field, causing WebSocket handshake to g_assert. g_checksum_get_digest checks to ensure that the passed digest_len is long enough to hold the digest, before setting it to the actual length of the digest returned. Digest_len is uninitialized in the code, so if you're lucky it will be larger than 20 and everything will work fine. If you're unlucky, g_checksum_get_digest will return either -1 or some number less than 20, and the g_assert(digest_len==20) will fail. --- gdk/broadway/gdkdisplay-broadway.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gdk/broadway/gdkdisplay-broadway.c b/gdk/broadway/gdkdisplay-broadway.c index 87fc1c87b3..5c711b7ea2 100644 --- a/gdk/broadway/gdkdisplay-broadway.c +++ b/gdk/broadway/gdkdisplay-broadway.c @@ -660,8 +660,8 @@ send_error (HttpRequest *request, static gchar * generate_handshake_response_wsietf_v7 (const gchar *key) { - guchar digest[20]; - gsize digest_len; + gsize digest_len = 20; + guchar digest[digest_len]; GChecksum *checksum; checksum = g_checksum_new (G_CHECKSUM_SHA1); -- 2.30.2